<?php 

class authorisation extends Load_use
{
	function getBlock()
	{
		$block='';
		/*Обработка ссылки восстановления пароля*/
		if(!empty($_GET['restore_pass']) && !empty($_GET['restore_pass']['email']) && !empty($_GET['restore_pass']['k']))
		{
			$email=mysql_real_escape_string($_GET['restore_pass']['email']);
			$key=mysql_real_escape_string($_GET['restore_pass']['k']);
			$this->conn->query("select ud.user_id,ud.value from users_datas ud, users u where u.email='$email' and ud.user_id=u.id and ud.prop_name='restore_pass_key' and ud.value like ('%|$key')");
			$user_d=$this->conn->fetch();
			$err=false;
			if($user_d)
			{
				$this->user->getCurrent($user_d->user_id);
				$restore_2='<form action="" method="post">
					<fieldset>
						<input type="password" name="restore_s2[pass]" class="type-text" placeholder="Новый пароль" />
					</fieldset>				
					<fieldset>
						<input type="password" name="restore_s2[pass_2]" class="type-text" placeholder="Повторите пароль" />
					</fieldset>
					<fieldset class="last">
						<span class="global-button">
							<input type="submit" class="global-button__inner" value="Изменить" />
						</span>	
					</fieldset>
				</form>';
				if(isset($_POST['restore_s2']))
				{
					$r=$_POST['restore_s2'];
					$err2=false;
					if(empty($r['pass'])||strlen($r['pass'])<6)
						$err2='Пароль не может быть пустым, минимальная длина - 6 символов';
					elseif(empty($r['pass_2'])|| $r['pass_2']!=$r['pass'])
						$err2='Пароли не совпадают';
					if($err2)
						$err=$err2.$restore_2;
					else
					{
						$pass=mysql_real_escape_string(md5($r['pass']));
						$this->user->password=$pass;
						$this->conn->query("update users set password='$pass' where id={$user_d->user_id}");
						$this->conn->query("delete from user_datas where user_id={$user_d->user_id} and prop_name='restore_pass_key'");
						successRedirect(array(
							'cookie_message'=>array('id'=>'password_restored'),
							'url'=>'http://'.$_SERVER['HTTP_HOST']
						));
					}
				}
				else
				{
					$d=explode('|',$user_d->value);
					if(date('Ymd')-$d[0]>3)/*Ссылка просрочена*/
						$err='Ссылка устарела, попробуйте повторить попытку';
					else
					{
						$this->load->block('modal_win',array(
							'title'=>'Восстановление пароля',
							'cont'=>$restore_2,
						));
					}
				}
					
			}
			else $err='Ссылка устарела, попробуйте повторить попытку восстановления';
			if($err)
				$this->load->block('modal_win',array('title'=>'Восстановление пароля','cont'=>'<p class="error">'.$err.'</p>'));
		}
		if(!$this->user->id)
		{
			$restore_form='<form method="post" action="">
					<fieldset>
						<input type="text" name="restore_pass_email" class="type-text" placeholder="E-mail" />
					</fieldset>
					<p>Вам на почту придет письмо с дальнейшими инструкциями</p>
					<fieldset class="last">
						<span class="global-button">
							<input type="submit" class="global-button__inner" value="Восстановить" />
						</span>	
					</fieldset>
				</form>	';
			/*Форма восстановления пароля*/
			$this->load->block('modal_win',array(
			'title'=>'Восстановление пароля',
			'width'=>'340',
			'init_id'=>'restore_pass',
			'cont'=>$restore_form				
			));
			
			if(isset($_POST['restore_pass_email']))
			{
				$email=strtolower(trim($_POST['restore_pass_email']));
				$err=false;
				if(empty($email))
					$err='Вы не ввели email';
				else
				{
					
					$this->conn->query('select id,name from users where email=\''.mysql_real_escape_string($email).'\' limit 1');
					$user=$this->conn->fetch();
					if(!$user)
						$err='Пользователя с таким email у нас нет';
					else
					{
						
						$host=$_SERVER['HTTP_HOST'];
						$key=getRndStr(20);
						$link='http://'.$host.'/?'.http_build_query(array('restore_pass'=>array('email'=>$email,'k'=>$key)));
						$key=date('Ymd').'|'.$key;
						$this->conn->query("insert into users_datas(user_id,prop_name,`value`)values({$user->id},'restore_pass_key','$key')");
						$this->load->module('email','send',array(
							'message'=>'<p>Здравствуйте, '.$user->name.'.</p> 
							<p>Для входа в интернет-магазин '.MAIL_SENDER_NAME.' пройдите по ссылке: <br /><a href="'.$link.'">'.$link.'</a> </p>
							<br />	<br />	<br />
							<p>С уважением, "'.MAIL_SENDER_NAME.'".</p>
							<p>'.$host.'</p>',
							'subject'=>'Восстановление пароля '.MAIL_SENDER_NAME,
							//'mail_to_address'=>$user->email,
							'mail_to'=>$user->name,
						));
						successRedirect(array('cookie_message'=>array('id'=>'restore_pass_email')));
					}
				}
				$this->load->block('modal_win',array('title'=>'Ошибка','cont'=>'<p class="error">'.$err.'</p>'.$restore_form));
			}
			/*Фома входа*/
			$this->load->block('modal_win',array(
			'title'=>'Авторизация',
			'class'=>'authorization',			
			'btn'=>'._login',
			'cont'=>
				'										
				<form action=" action=""">
					<fieldset>
						<input class="type-text" name="login[email]" type="text" placeholder="Электронная почта" />
					</fieldset>
					<fieldset>
						<input class="type-text" name="login[pass]" type="password" placeholder="Пароль" />
					</fieldset>
					<fieldset>
						<input class="global-button" type="submit" value="Войти" />

						<div class="memorization">
							<input id="memorization" type="checkbox" />
							<label for="memorization">Не запоминать меня</label>
						</div>

					</fieldset>
				</form>

				<p>Забыли ваш пароль? Мы поможем его <a href="#password-recovery" class="reestablish show-popup">восстановить</a></p>
	
	
				<!--<form method="post" action="">
					<fieldset>
						<input class="type-text" name="login[email]" type="text" placeholder="Электронная почта" />
					</fieldset>
					<fieldset>
						<input class="type-text" name="login[pass]" type="password" placeholder="Пароль" />
					</fieldset>
					<fieldset>

						<!-- global-welterweight-bt Start -->
						<button class="global-welterweight-bt large-indentation">
							<span class="global-welterweight-bt__icon">
								<span class="global-welterweight-bt__icon__inner welterweight-lock-icon">&nbsp;</span>
							</span>
							Войти в систему
						</button>
						<!-- global-welterweight-bt end -->

						<!-- memorization Start -->
						<div class="memorization">
							<input id="memorization" class="checkbox" type="checkbox" />
							<label for="memorization">Не запоминать меня</label>
						</div>
						<!-- memorization end -->	

					</fieldset>
				</form>

			<p>Забыли ваш пароль? Мы поможем его <a href="#password-recovery" class="reestablish show-popup">восстановить</a></p>-->'
			));
			/*Форма регистрации*/
			$r_data=array('name'=>'','phone'=>'','email'=>'');			
			$r_err=array();
			if(isset($_POST['registration']))
			{
				$r=array_map('trim',$_POST['registration']);
				if(empty($r['name']))$r_err[]='<li>Вы не указали имя</li>';				
				else $r_data['name']=$r['name'];
				
				if(empty($r['email']))$r_err[]='<li>Вы не указали e-mail, он будет использоваться в качетве вашего логина, и для восстановления пароля</li>';
				elseif(!preg_match('#^[\d_\w-\.]+@[\d_\w-\.]+\.[\w]{2,}$#',$r['email']))$r_err[]='<li>E-mail имеет не правильный формат</li>';
				else
				{
					$this->conn->query('select id from users where email=\''.mysql_real_escape_string(strtolower(trim($r['email']))).' \' limit 1');
					if($this->conn->rowCount())
						$r_err[]='<li>Пользователь с таким email уже зарегистрирован, если вы забыли пароль попробуйте <span class="_link" onclick="dee_modal_win.show(\'restore_pass\');">восстановить его </span></li>';
					else $r_data['email']=$r['email'];
				}
				if(empty($r['pass']) || strlen($r['pass'])<6)$r_err[]='<li>Пароль не может быть пустым, вы должны ввести минимум 6 символов</li>';
				elseif(empty($r['pass_2']) || $r['pass_2']!=$r['pass'])$r_err[]='<li>Пароли не совпадают</li>';
				if(!empty($r['phone']))$r_data['phone']=$r['phone'];
				
				if(!$r_err)
				{
					$pass=mysql_real_escape_string(md5($r['pass']));
					$name=mysql_real_escape_string($r['name']);
					$email=mysql_real_escape_string($r['email']);
					$user_id=$this->conn->query("insert into users(name,email,password,date_registred,group_id)values('$name','$email','$pass',now(),(select id from groups g where type='users' and name_sys='buyer'))",true);
					if($user_id)$this->conn->query("insert into users_groups_ids (is_user,object_id)values(1,$user_id)");
					$this->user->getCurrent($user_id);
					
					successRedirect(array('cookie_message'=>array('id'=>'user_registred')));					
				}
					
			}
			$reg_form='<form method="post" action="">
				<fieldset>
					<input type="text" name="registration[name]" class="type-text" value="'.$r_data['name'].'" placeholder="*Имя" />
				</fieldset>
				<fieldset>
					<input type="text" name="registration[email]" class="type-text" value="'.$r_data['email'].'"  placeholder="*E-mail" />
				</fieldset>
				<fieldset>
					<input type="password" name="registration[pass]" class="type-text" placeholder="*Пароль" />
				</fieldset>
				<fieldset>
					<input type="password" name="registration[pass_2]" class="type-text" placeholder="*Подтвердите пароль" />
				</fieldset>
				<fieldset>
					<input type="text" name="registration[phone]" class="type-text"  value="'.$r_data['phone'].'" placeholder="Номер телефона" />
				</fieldset>
				<fieldset class="last">
					<span class="global-button">
						<input type="submit" class="global-button__inner" value="Готово" />
					</span>	
				</fieldset>
			</form>	';
			if($r_err)
				$this->load->block('modal_win',array('title'=>'Регистрация на сайте','cont'=>'<ul class="error">'.implode($r_err).'</ul>'.$reg_form));
			$this->load->block('modal_win',array(
				'title'=>'Регистрация на сайте',
				'width'=>'340',
				'btn'=>'._registration_btn',
				'cont'=>$reg_form
			));
			$block='
					<div class="user-panel__item__inner">
						<div class="user-panel__item__icon">
							<span>&nbsp;</span>
						</div>	
						<div class="_login user-panel__item__link">
							<a href="#authorization">Войти</a>
						</div>	
					</div>
					
					<!--<div class="user-navi__item__inner">
						<div class="_login user-navi__authorization" >
							<span>Авторизация</span>
						</div>
					</div>-->
					';
		}else
		{
			$block='
					<div class="user-navi__item__inner">
						<div class="user-navi__authorization show-popup entered">
							<a href="/user" class="user-navi__authorization__name">'.$this->user->name.'</a><br />
							<a href="/?user=logout" class="logout">Выйти</a>
						</div>
					</div>	
					';
		}
		/* '<li><a rel="nofollow" href="/user">'.$this->user->name.'</a></li>
			<li class="_logout_btn"><form action="" method="post"><input type="hidden" name="login[logout]"  value="1"/><span>Выйти</span></form></li>' */
		return $block;
		
	}
}